package ae.pcfc.cldos.online.common.clddb.domain;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.hibernate.envers.Audited;

import ae.pcfc.cldos.online.common.domain.BaseEntity;


/**
 * The persistent class for the T_CLDOS_EMPLOYEE_DETAILS database table.
 * 
 */
@Entity
@Table(name="T_CLDOS_EMPLOYEE_DETAILS")
@Audited
public class EmployeeDetail extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	public static final String __ADDRESS_DETAILS = "AddressDetail";
	public static final String __PASSPORT_DETAILS = "PassportDetail";
	public static final String __PERSONAL_DETAILS = "PersonalDetail";
	
	public static final String __PASSPORT_NAME = "edPsprtName";
	
	@Id
	@GeneratedValue(generator="SQ_CLDOS_APP_ID")
	@GenericGenerator(name = "SQ_CLDOS_APP_ID",  strategy="foreign", parameters=@Parameter(name="property", value="AppMetaData"))
	@Column(name="APPLICATION_ID")
	private Long applicationId;

	@Column(name="ED_ACCMDTN_ALWNCE")
	private String edAccmdtnAlwnce;
	
	@Column(name="ED_RPPERIOD")
	private Integer edRpperiod;
	
	@Column(name="ED_SALARY")
	private long edSalary;

	@Column(name="ED_ACCMDTN_STATUS")
	private String edAccmdtnStatus;

	@Column(name="ED_AIRFARE")
	private String edAirfare;

	@Column(name="ED_BANK_GRNTE_FLG")
	private String edBankGrnteFlg;

	@Column(name="ED_EMP_STATUS")
	private String edEmpStatus;

	@Column(name="ED_EP_COLL_METHD")
	private String edEpCollMethd;

	@Column(name="ED_FOOD_ALWNCE")
	private String edFoodAlwnce;

	@Column(name="ED_GENDER")
	private String edGender;

	@Column(name="ED_ID_CARD_FLG")
	private String edIdCardFlg;

	@Column(name="ED_JOB_CODE")
	private String edJobCode;

	@Column(name="ED_MARITAL_STATUS")
	private String edMaritalStatus;

	@Column(name="ED_MEDICAL_TYPE")
	private String edMedicalType;

	@Column(name="ED_NATIONALITY")
	private String edNationality;

	@Column(name="ED_ORIGIN_CITY")
	private String edOriginCity;

	@Column(name="ED_OTHR_BENEFIT")
	private String edOthrBenefit;

	@Column(name="ED_PORT_NO")
	private String edPortNo;

	@Column(name="ED_PRIORITY")
	private String edPriority;

	@Column(name="ED_PSPRT_NAME")
	private String edPsprtName;

	@Column(name="ED_RELEGION")
	private String edRelegion;

	@Column(name="ED_REPORT_NAME")
	private String edReportName;

	@Column(name="ED_SRC")
	private String edSrc;

	@Column(name="ED_TRANSPORTATION")
	private String edTransportation;

	@Column(name="ED_TYPE")
	private String edType;

	@Column(name="ED_VISA_TYPE")
	private String edVisaType;

	//bi-directional many-to-one association to AddressDetail
	@OneToOne(mappedBy="EmployeeDetail", cascade=CascadeType.ALL, optional=true)
	private AddressDetail AddressDetail;

	//bi-directional many-to-one association to AppMetaData
	@OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL, optional=true)
	@PrimaryKeyJoinColumn
	private AppMetaData AppMetaData;

	//bi-directional many-to-one association to PassportDetail
	@OneToOne(mappedBy="EmployeeDetail", cascade=CascadeType.ALL, optional=true)
	private PassportDetail PassportDetail;

	//bi-directional many-to-one association to PersonalDetail
	@OneToOne(mappedBy="EmployeeDetail", cascade=CascadeType.ALL, optional=true)
	private PersonalDetail PersonalDetail;

    public EmployeeDetail() {
    }
	
	public long getEdSalary() {
		return this.edSalary;
	}

	public void setEdSalary(long edSalary) {
		this.edSalary = edSalary;
	}
	public Integer getEdRpperiod() {
		return this.edRpperiod;
	}

	public void setEdRpperiod(Integer edRpperiod) {
		this.edRpperiod = edRpperiod;
	}

	public String getEdAccmdtnAlwnce() {
		return this.edAccmdtnAlwnce;
	}

	public void setEdAccmdtnAlwnce(String edAccmdtnAlwnce) {
		this.edAccmdtnAlwnce = edAccmdtnAlwnce;
	}

	public String getEdAccmdtnStatus() {
		return this.edAccmdtnStatus;
	}

	public void setEdAccmdtnStatus(String edAccmdtnStatus) {
		this.edAccmdtnStatus = edAccmdtnStatus;
	}

	public String getEdAirfare() {
		return this.edAirfare;
	}

	public void setEdAirfare(String edAirfare) {
		this.edAirfare = edAirfare;
	}

	public String getEdBankGrnteFlg() {
		return this.edBankGrnteFlg;
	}

	public void setEdBankGrnteFlg(String edBankGrnteFlg) {
		this.edBankGrnteFlg = edBankGrnteFlg;
	}

	public String getEdEmpStatus() {
		return this.edEmpStatus;
	}

	public void setEdEmpStatus(String edEmpStatus) {
		this.edEmpStatus = edEmpStatus;
	}

	public String getEdEpCollMethd() {
		return this.edEpCollMethd;
	}

	public void setEdEpCollMethd(String edEpCollMethd) {
		this.edEpCollMethd = edEpCollMethd;
	}

	public String getEdFoodAlwnce() {
		return this.edFoodAlwnce;
	}

	public void setEdFoodAlwnce(String edFoodAlwnce) {
		this.edFoodAlwnce = edFoodAlwnce;
	}

	public String getEdGender() {
		return this.edGender;
	}

	public void setEdGender(String edGender) {
		this.edGender = edGender;
	}

	public String getEdIdCardFlg() {
		return this.edIdCardFlg;
	}

	public void setEdIdCardFlg(String edIdCardFlg) {
		this.edIdCardFlg = edIdCardFlg;
	}

	public String getEdJobCode() {
		return this.edJobCode;
	}

	public void setEdJobCode(String edJobCode) {
		this.edJobCode = edJobCode;
	}

	public String getEdMaritalStatus() {
		return this.edMaritalStatus;
	}

	public void setEdMaritalStatus(String edMaritalStatus) {
		this.edMaritalStatus = edMaritalStatus;
	}

	public String getEdMedicalType() {
		return this.edMedicalType;
	}

	public void setEdMedicalType(String edMedicalType) {
		this.edMedicalType = edMedicalType;
	}

	public String getEdNationality() {
		return this.edNationality;
	}

	public void setEdNationality(String edNationality) {
		this.edNationality = edNationality;
	}

	public String getEdOriginCity() {
		return this.edOriginCity;
	}

	public void setEdOriginCity(String edOriginCity) {
		this.edOriginCity = edOriginCity;
	}

	public String getEdOthrBenefit() {
		return this.edOthrBenefit;
	}

	public void setEdOthrBenefit(String edOthrBenefit) {
		this.edOthrBenefit = edOthrBenefit;
	}

	public String getEdPortNo() {
		return this.edPortNo;
	}

	public void setEdPortNo(String edPortNo) {
		this.edPortNo = edPortNo;
	}

	public String getEdPriority() {
		return this.edPriority;
	}

	public void setEdPriority(String edPriority) {
		this.edPriority = edPriority;
	}

	public String getEdPsprtName() {
		return this.edPsprtName;
	}

	public void setEdPsprtName(String edPsprtName) {
		this.edPsprtName = edPsprtName;
	}

	public String getEdRelegion() {
		return this.edRelegion;
	}

	public void setEdRelegion(String edRelegion) {
		this.edRelegion = edRelegion;
	}

	public String getEdReportName() {
		return this.edReportName;
	}

	public void setEdReportName(String edReportName) {
		this.edReportName = edReportName;
	}

	public String getEdSrc() {
		return this.edSrc;
	}

	public void setEdSrc(String edSrc) {
		this.edSrc = edSrc;
	}

	public String getEdTransportation() {
		return this.edTransportation;
	}

	public void setEdTransportation(String edTransportation) {
		this.edTransportation = edTransportation;
	}

	public String getEdType() {
		return this.edType;
	}

	public void setEdType(String edType) {
		this.edType = edType;
	}

	public String getEdVisaType() {
		return this.edVisaType;
	}

	public void setEdVisaType(String edVisaType) {
		this.edVisaType = edVisaType;
	}

	public AddressDetail getAddressDetail() {
		return this.AddressDetail;
	}

	public void setAddressDetail(AddressDetail AddressDetail) {
		this.AddressDetail = AddressDetail;
	}
	
	public AppMetaData getAppMetaData() {
		return this.AppMetaData;
	}

	public void setAppMetaData(AppMetaData AppMetaData) {
		this.AppMetaData = AppMetaData;
	}
	
	public PassportDetail getPassportDetail() {
		return this.PassportDetail;
	}

	public void setPassportDetail(PassportDetail PassportDetails) {
		this.PassportDetail = PassportDetails;
	}
	
	public PersonalDetail getPersonalDetail() {
		return this.PersonalDetail;
	}

	public void setPersonalDetail(PersonalDetail PersonalDetail) {
		this.PersonalDetail = PersonalDetail;
	}

	public Long getApplicationId() {
		return applicationId;
	}

	public void setApplicationId(Long applicationId) {
		this.applicationId = applicationId;
	}
	
}